Page({
  data: {
    drinkInfo: {},
    navBarHeight: 0,

    // 轮播图
    swiperList: [],

    // 用户选择的规格
    selectedSize: "large",
    selectedSweet: "natural",
    selectedTemp: "slush",
    quantity: 1,
    // 初始选择
    selectedSize: 'large', // 杯型：small-中杯，large-大杯
    selectedSugar: 'natural', // 糖型：natural-100%甜味来自水果
    selectedTemp: 'slush', // 温度：slush-冰沙，noIce-去冰
    selectedTea: 'forest', // 茶底：forest-森林观音，noTea-去茶底
    toppings: [], // 加料：grape-加葡萄鲜果肉
    quantity: 1, // 数量
    totalPrice: 23, // 基础价格（大杯）
    hasGrapeTopping: false, // 是否选择了葡萄加料

    // 规格描述（用于底部展示）
    selectedSizeDesc: '大杯650ml',
    selectedSugarDesc: '100%甜味来自水果',
    selectedTempDesc: '冰沙',
    selectedTeaDesc: '森林观音'
  },

  // 选择杯型
  selectSize(e) {
    const size = e.currentTarget.dataset.size;
    let price = 23; // 基础价格（中杯23，大杯23+4=27？需根据实际调整）
    if (size === 'large') {
      price = 27;
      this.setData({
        selectedSizeDesc: '大杯650ml'
      });
    } else {
      price = 23;
      this.setData({
        selectedSizeDesc: '中杯500ml'
      });
    }
    this.setData({
      selectedSize: size,
      totalPrice: price * this.data.quantity
    });
  },
  goToCheckout() {
    // 构建订单商品信息
    const product = {
      id: this.data.drinkInfo.id,
      name: this.data.drinkInfo.name,
      image: this.data.drinkInfo.image,
      price: this.calculatePrice(), // 计算最终价格
      spec: this.getSpecSummary(), // 拼接规格描述
      quantity: this.data.quantity
    };

    // 方式1：存入本地缓存（推荐）
    wx.setStorageSync("currentOrder", {
      products: [product],
      createTime: new Date().getTime()
    });

    // 方式2：通过URL参数传递（适用于简单数据）
    // const orderStr = encodeURIComponent(JSON.stringify(product));
    // wx.navigateTo({ url: `/pages/checkout/checkout?order=${orderStr}` });

    // 跳转到结算页
    wx.navigateTo({
      url: "/pages/checkout/checkout"
    });
  },

  // 计算最终价格（含规格差价）
  calculatePrice() {
    const sizePrice = this.data.sizeOptions.find(
      s => s.value === this.data.selectedSize
    ).price;
    return this.data.drinkInfo.basePrice + sizePrice;
  },

  // 拼接规格描述
  getSpecSummary() {
    return `大杯/冰沙/100%甜味来自水果`; // 示例，实际需根据选择动态生成
  },
  // 选择糖型（示例无多选项，可扩展）
  selectSugar(e) {
    const sugar = e.currentTarget.dataset.sugar;
    this.setData({
      selectedSugar: sugar,
      selectedSugarDesc: '100%甜味来自水果' // 可动态配置
    });
  },

  // 选择温度
  selectTemp(e) {
    const temp = e.currentTarget.dataset.temp;
    this.setData({
      selectedTemp: temp,
      selectedTempDesc: temp === 'slush' ? '冰沙' : '去冰'
    });
  },

  // 选择茶底
  selectTea(e) {
    const tea = e.currentTarget.dataset.tea;
    this.setData({
      selectedTea: tea,
      selectedTeaDesc: tea === 'forest' ? '森林观音' : '去茶底'
    });
  },

  // 切换加料（多选）
  toggleTopping(e) {
    const topping = e.currentTarget.dataset.topping;
    const toppings = this.data.toppings.includes(topping) ?
      this.data.toppings.filter(t => t !== topping) : [...this.data.toppings, topping];

    // 计算加料总价（示例：加葡萄鲜果肉 +4元）
    const toppingPrice = toppings.length * 4;
    this.setData({
      toppings,
      hasGrapeTopping: toppings.includes('grape'),
      totalPrice: (23 + (this.data.selectedSize === 'large' ? 4 : 0) + toppingPrice) * this.data.quantity
    });
  },

  // 减少数量
  decreaseQuantity() {
    if (this.data.quantity > 1) {
      this.setData({
        quantity: this.data.quantity - 1,
        totalPrice: this.data.totalPrice - (23 + (this.data.selectedSize === 'large' ? 4 : 0))
      });
    }
  },

  // 增加数量
  increaseQuantity() {
    this.setData({
      quantity: this.data.quantity + 1,
      totalPrice: this.data.totalPrice + (23 + (this.data.selectedSize === 'large' ? 4 : 0))
    });
  },

  // 加入购物车（模拟）
  addToCart() {
    // 构建商品信息
    const product = {
      id: this.data.drinkInfo.id,
      image: this.data.drinkInfo.image,
      name: this.data.drinkInfo.name,
      spec: `${this.data.selectedSugarDesc}/${this.data.selectedTeaDesc}/${this.data.selectedSizeDesc}/${this.data.selectedTempDesc}`,
      price: this.data.totalPrice,
      count: this.data.quantity,
    };
    
    // 将商品信息存储到本地
    wx.setStorageSync('selectedProduct', product)
    
    // 返回上一页
    wx.navigateBack()
  },

  onLoad(opts) {
    try {
      // 获取系统信息
      const systemInfo = wx.getWindowInfo()

      // 获取胶囊按钮位置信息
      const menuButtonInfo = wx.getMenuButtonBoundingClientRect()

      // 计算导航栏总高度（状态栏 + 导航栏）
      const navBarHeight = (menuButtonInfo.top - systemInfo.statusBarHeight) * 2 + menuButtonInfo.height
      
      const detail = opts.detail.replace(/\|and\|/g, '&')
      // console.log(detail);
      const info = JSON.parse(detail)
      console.log(info);
      const swiperList = [{
        value: info.image,
        ariaLabel: '图片'
      }, {
        value: info.image,
        ariaLabel: '图片'
      }, {
        value: info.image,
        ariaLabel: '图片'
      }]
      this.setData({
        navBarHeight: navBarHeight,
        swiperList: swiperList,
        drinkInfo: info
      })
    } catch (error) {
      wx.showToast({
        title: '参数错误',
        icon: "error"
      })
    }
  }
});